C#.NStar Pre-Pre-I-2o2



Привет, неизвестный путник! Здесь вы можете просмотреть информацию о C#.NStar Pre-Pre-I-2o2. Вы можете скачать EXE или просмотреть список изменений, скриншоты и/или видео.
Что уже проверено и работает в дополнение к версии Pre-Pre-I-2o1:
1. Все ошибки, предупреждения и прочие сообщения транспайлера пронумерованы.
2. Существенно более сильная типизация.
3. Тернарные операторы.
4. ЛЯМБДА-ВЫРАЖЕНИЯ!
5. Индексы с конца и диапазоны.
Что уже проверено и не работает в дополнение к версии Pre-Pre-I-2o1:
1. NList[T]. Используйте list() T - транспайлер сам определит, конвертировать его в List<T>, NList<T> или BitList.


Рабочие примеры кода на C#.NStar:
using System.Collections;
var hs = new ListHashSet[string]();
hs.Add("1");
hs.Add("2");
hs.Add(""); // Можно добавить пустую строку
hs.Add("2");
return hs;


return DateTime.IsLeapYear(2025) ? -1234567890 : 2345678901;


var a = 1 ?> 2 : 3 ?> 2 : 1;
return a;


using System;
Func[real, real] f = x => x * x;
return f(100);


using System;
list() Func[real, real] list = (x => x * x, x => 1 / x, x => E pow x);
return (list[1](3.14), list[2](3.14), list[3](3.14), list[1](-5), list[2](-5), list[3](-5));


using System;
Func[real, real] f = x =>
{
    if (x >= 0)
        return x * x;
    else
        return -x * x;
};
return (f(100), f(-5));


list() int list = (1, 2, 3, 4, 5);
return list[^1];


list() int list = (1, 2, 3, 4, 5, 6, 7);
return list[3..^2];


list() int list = (1, 2, 3, 4, 5, 6, 7);
index start = 3;
index end = 5;
var range = start..end;
return list[range];


list() int list = (1, 2, 3, 4, 5);
var range = ..;
return list[range];


using System.Collections;
var hs = new ListHashSet[string]();
hs.Add("1");
hs.Add("2");
hs.Add("3");
hs.Add("2");
return hs.RemoveValue("2");


using System.Collections;
var hs = new ListHashSet[string]();
hs.Add("1");
hs.Add("2");
hs.Add("3");
hs.Add("2");
return hs.Remove(2..);




Все остальное не проверено и, скорее всего, не работает .

Ссылка на EXE

(~40 MB)

Назад ко всем версиям